
Cracking desde cero para súper newbies 5
| Víctima: |
Visual
Labels v. 3.2f
|
| URL: | |
| Descripción: |
Para crear etiquetas
|
| Tamaño del ejecutable: |
1,18 megas
|
| Tipo de Protección: |
Serial
|
| Método de ataque |
Desensamblar y Depurar
|
| Objetivo |
Simular estar registrados
|
| Cracker |
dek_Oin
|
| Dificultad |
Newbie - Aficionado - Avanzado -
Experto - Élite
|
| Herramientas |
SoftIce, W32Dasm.
|
| Fecha: |
30/09/2000
|
Saludos a todos como les va?. Tan solo una hora después de terminar el manual anterior, escribo este. Está relacionado también con el SiCE ya que encontraremos un número de registro válido para este programa. Les dije que se olvidaran de cambiar simples saltitos fáciles de encontrar, pero no les dije que se olvidaran de el W32Dasm, nos ayudará mucho.
|
A
crackear...
|
|
Otra protección horrible. La verdad es que da lástima. Pero bueno, sirve para practicar un poco verdad?. Conoceremos (si no pensaron nunca sobre esto), la relación entre el W32Dasm y el SiCE, que realmente facilita mucho las cosas a la hora de encontrar números de serie válidos. Este programa sirve para crear etiquetas, a mi personalmente no me gusta mucho, pero no puedo opinar si lo único que hago con estos programas es bajarlos, crackearlos, tutorial, guardar el instalador por si surge cualquier duda y luego borrar los programas. Les puede parecer un poco "monótono" pero así se aprende rápido, ya verán.
Vamos a la toma de contacto con el programa. Lo ejecutamos, hmmm, una nag:

Que asco!!!!, no hay nada peor que una nag cada vez que iniciamos un programa!!!!, las odio!!!. Y todavía miren el precio de este programa!!!, 20 dólares, que caro. Vamos a ver que podemos hacer para eliminarlas. Hagan clic en "Enter Serial Number" y rellenen la información. Yo lo haré como se muestra en la imagen:

Bien, ponemos ok y como era de esperar:

Pero que nag más estpupida!!!!, nunca vi una que nos diera tanta información sobre el serial. "Make sure that the serial number starts with RKS-" como pueden ser tan estúpidos?. De todas maneras no importa. Desensamblemos con el W32Dasm y busquemos en las strings references algo como "Invalid registration code" o algo que tenga la palabra invalid.

Aquí está lo que buscábamos. Hacemos doble clic muchas veces para ver cuantas referencias hay sobre el y hay muchas, no las conté pero cualquiera de lo mismo. Miren lo que verán el la primera:
| :004928A5 8B88D0010000
mov ecx, dword ptr [eax+000001D0] :004928AB 8B55F8 mov edx, dword ptr [ebp-08] :004928AE 8B45FC mov eax, dword ptr [ebp-04] :004928B1 E826EDFFFF call 004915DC :004928B6 84C0 test al, al :004928B8 7412 je 004928CC<--------------Dirección llamada de todos lados :004928BA 8B45F4 mov eax, dword ptr [ebp-0C] :004928BD C7802801000001000000 mov dword ptr [ebx+00000128], 00000001 :004928C7 E91B010000 jmp 004929E7 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004928B8(C)<--------------------------Error llamado desde un salto en la dirección 004928b8 | :004928CC 55 push ebp :004928CD E826FDFFFF call 004925F8 :004928D2 59 pop ecx :004928D3 84C0 test al, al :004928D5 741F je 004928F6 :004928D7 6A00 push 00000000 * Reference To: user32.MessageBeep, Ord:0000h | :004928D9 E8422BF7FF Call 00405420 :004928DE 66B93000 mov cx, 0030 * Possible StringData Ref from Code Obj ->"Product Registration" | :004928E2 BA302A4900 mov edx, 00492A30 * Possible StringData Ref from Code Obj ->"Invalid Serial Number or Name." | :004928E7 B8502A4900 mov eax, 00492A50 :004928EC E873FCFFFF call 00492564 :004928F1 E9F1000000 jmp 004929E7 |
Fácil por ahora. Vean el salto de la dirección 004928CC. Esto es lo que tenían en común todas las referencias que habían sobre el mensaje de error, que todas se dirigían a este salto. Si salta nos muestra el mensaje de error. Que podríamos hacer, parchearlo con el editor hexadecimal?, no!!!. Si lo parcheamos, lo único que estaríamos haciendo es que el programa muestre siempre la ventanita de "Gracias por registrarse", al iniciarlo de nuevo, el programa no estará registrado. Vamos a conseguir un número de serie válido con el SiCE. ¿Si vamos a usar el SiCE, para que desensamblamos e hicimos todo esto?. Ahora tenemos una gran ventaja, ya sabemos donde se realiza la comprobación del serial, y en el SiCE todo será más fácil. Es más, no haremos casi nada, la mayor parte la hicimos en el W32Dasm.
Lo que haremos será poner un bpx en la dirección de memoria del salto. La anotamos. Haremos uso de una importantísima parte del SiCE. El Symbol Loader. El Symbol Loader sirve para cargar el programa desde SiCE en modo de depuración. Así podrás trazar el programa paso a paso desde la primera instrucción. Es importante en depuración de programas y para descompresión o desencriptación manual de éstos.
Abrimos el
Symbol Loader, ponemos File/Open Module y
seleccionamos el ejecutable del Visual Labels (VI.exe). Luego pulsamos en
y se mostrará un mensaje de un error. Pónganle si y saltaran directo al SiCE.
Luego ponemos el bpx en la dirección de memoria (bpx 004928B8 en mi caso) y pulsamos F5. Verán que el programa está ejecutándose. Ponemos nuestros datos (los míos son Nombre: dek_Oin Serial: 55555) y luego pulsamos OK. En el SiCE!!!. Apareceremos aquí:
| :00492897 8B80B0010000
mov eax, dword ptr [eax+000001B0] :0049289D E87227F8FF call 00415014<------------------Llamada a la rutina de comprobación :004928A2 8B45F4 mov eax, dword ptr [ebp-0C] :004928A5 8B88D0010000 mov ecx, dword ptr [eax+000001D0] :004928AB 8B55F8 mov edx, dword ptr [ebp-08]<-------EDX contiene nuestros datos :004928AE 8B45FC mov eax, dword ptr [ebp-04] :004928B1 E826EDFFFF call 004915DC :004928B6 84C0 test al, al :004928B8 7412 jz 004928CC<---------------------------------Aquí aparecemos :004928BA 8B45F4 mov eax, dword ptr [ebp-0C] :004928BD C7802801000001000000 mov dword ptr [ebx+00000128], 00000001 :004928C7 E91B010000 jmp 004929E7 :004928CC 55 push ebp :004928CD E826FDFFFF call 004925F8 |
Creo que la cosa está clara. Estamos en el mismo lugar que habíamos visto en el W32Dasm. Así que tenemos que ir viendo el contenido de los registros. D eax, nada interesante, d ebx, nada, d ecx, nada, d edx, si!!!!, ahí están nuestros datos. Lo que me llamó la atención es que se generan 2 números de serie válidos para cada nombre. Y los dos funcionan bien. ¿Qué raro no?. Pienso que los programadores de RKS tendrían que empeñarse más en sus protecciones y lo peor, no deberían decirnos que el serial empieza con RKS y que luego tiene un - !!!!.
|
Despedida
|
|
Aquí culmina mi séptimo manual que no es poco. Me despido pero no sin antes dar las gracias al grupo K-FoR, por invitarme a ser miembro y por su apoyo. Gracias a Profesor X por su fabulosa compilación y por toda su ayuda. Gracias también a Karpoff, por su gran apoyo y sus consejos, y a Txeli, por su apoyo moral y por pasarme algunos programas interesantes. Y finalmente gracias a ustedes por leer mi manual.
Y este fue el principio,
A s t a l a v i s t a
Página oficial del grupo K-FoR: http://pagina.de/kfor
Mi dirección de
E-Mail: dek_oin@hotmail.com